package com.zrrd.learn.chapter07字符串;

import java.util.Random;

/**
 * 字符串习题二
 *
 * @author wrn
 * @version 1.0
 * @date 2023/7/19 10:04
 */

public class StringExerciseTwo {

    /**
     * 创建一个StringBuffer对象内容为“我就是学习”在其中插入数据使输出结果为“我就是努力学习”。
     */
    public static void question01(){
        System.out.println("第一题");
        StringBuffer str = new StringBuffer("我就是学习");
        str.insert(3,"努力");
        System.out.println(str);
    }

    /**
     * 创建一个StringBuffer对象内容为“学习使我开心”替换其中的数据使输出结果为“游戏使我快乐”
     */
    public static void question02(){
        System.out.println("第二题");
        StringBuffer str = new StringBuffer("学习使我开心");
        str.replace(0,2,"游戏");
        str.replace(4,6,"快乐");
        System.out.println(str);
    }

    /**
     *  验证一个字符串是否为回文串
     * @param s
     */
    public static void question03(int s){
        System.out.println("第三题");
        String str = String.valueOf(s);
        StringBuilder stringBuilder = new StringBuilder(str);
        stringBuilder.trimToSize();
        System.out.println(stringBuilder.reverse().toString().equals(str) ? "是回文数" : "不是回文数");
    }

    /**
     * 获取随机的字符串，要求如下：
     * 定义String getStr(char[] chs)静态方法，
     * 方法内要求：获取长度为5的随机字符串，字符串由随机的4个大写英文字母和1个0-9之间（包含0和9）的整数组成 定义main方法，
     * 方法内完成： 1.定义长度为26，元素值为26个大写英文字母的数组chs
     *           2.传递数组chs调用getStr(char[] chs)方法，获取返回值,并在控制台打印返回值
     *
     */
    public static String getStr(char[] chs){
        Random r = new Random();
        //1个0-9之间（包含0和9）的整数
        String randomstr = r.nextInt(10) + "";
        //随机的4个大写英文字母
        for (int i = 0; i < 4; i++) {
            int index = r.nextInt(chs.length);
            randomstr += chs[index];
        }
        return randomstr;
    }
    public static void question04(){
        System.out.println("第四题");
        char[] chs = new char[26];
        for (int i = 0; i < chs.length; i++) {
            chs[i] = (char) ('A' + i);
        }
        //传递数组chs调用getStr(char[] chs)方法,
        // 获取返回值,并在控制台打印返回值
        String randomstr = getStr(chs);
        System.out.println(randomstr);
    }

    /**
     * 创建一个StringBuffer对象然后实现反转输出 例子：123 输出321
     * @param str
     */
    public static void question05(String str){

        System.out.println("第五题");
        StringBuffer stringBuffer = new StringBuffer(str);
        stringBuffer.reverse();
        System.out.println("反转后为"+stringBuffer);

    }

    /**
     * 创建一个StringBuffer对象实现和String对象互转
     */
    public static void question06(){
        System.out.println("第六题");
        StringBuffer stringBuffer = new StringBuffer("123");
        String str = "345";

        stringBuffer.toString();
        StringBuffer stringBuffer1 = new StringBuffer(str);

        System.out.println(stringBuffer+"\n"+stringBuffer1);

    }
    public static void main(String[] args) {
        question01();
        question02();
        question03(121);

       question04();

        question05("145");
        question06();
    }

}
